package com.xiexie.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

import java.util.concurrent.TimeUnit;

/**
 * @Description
 * @Date 2022-04-12 9:11
 * @Author xie
 */
@SpringBootApplication
public class ConfigApplication {

    public static void main(String[] args) throws InterruptedException {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(ConfigApplication.class, args);

        while (true) {
            String userName = applicationContext.getEnvironment().getProperty("user.name");
            String userAge = applicationContext.getEnvironment().getProperty("user.age");
            String config = applicationContext.getEnvironment().getProperty("user.config");
            System.err.println("user name :"+userName+"; age: "+userAge + "; config: " + config);
            // 一秒钟拉取一次
            TimeUnit.SECONDS.sleep(1);
        }
        // nacos客户端每10ms 去注册中心拉取一次，是根据注册中心的MDS值去更新的（每次更改配置中会有历史版本，新版本会生成新的MD5值）
        // 当发现客户端缓存的MD5值不一样时，就会卡去更新的配置文件信息
        /**
         * 当一直出现c.a.n.client.config.impl.ClientWorker    : [fixed-192.168.5.133_8848-public] [polling-resp] config changed
         * 这个信息时候，有两个原因
         * 1. 绑定我们的命名空间为public时候，不需要指定默认就是，注释掉；或者指定其他的命名空间
         * 2. 我们依赖的nacos客户端版本跟服务端的版本不一致（一般情况都是对应的，有问题根据具体情况查验）
         */

    }
}
